#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <UIKit/UIView.h>
#import <UIKit/UIControl.h>
#import <UIKit/UITextLabel.h>
#import <UIKit/UITransformAnimation.h>
#import <UIKit/UIAnimator.h>
#import <UIKit/UIPushButton.h>
#import "WebCore/WebFontCache.h"

#import <UIKit/UIKeyboard.h>

#import "common.h"
#import "FDHighScoresView.h"
#import "FDDefaultsController.h"
#import "FDTextInputView.h"

@interface NSObject (GameMenuDelegateMethods)

- (void)changeStateTo:(int)state;
- (void)startNewGame;

@end

@interface FDGameMenuView : UIView
{
	struct CGRect				_contentRect;
	struct CGRect				_offScreenRect;
	struct CGRect				_onScreenRect;
	
	id	delegate;
	
	NSString	*playerOneName;
	NSString	*playerTwoName;
	
	UITransformAnimation	*translate;
	UIAnimator				*animator;
	
	FDDefaultsController	*defaults;
	FDHighScoresView		*highScoresView;
	UITextLabel				*playerOneLabel;	
	UITextLabel				*playerTwoLabel;	


	FDTextInputView			*textInputView;
	UIPushButton			*doneButton;
	
	BOOL	keyboardVisible;
	
}

#pragma mark Show and Hide Methods
- (void)show;
- (void)hide;

#pragma mark Buttons and Graphics
- (void)setupButtons;

#pragma mark Other Views
- (void)showHighScoresBanner;
- (void)hideHighScoresBanner;

#pragma mark Button Delegates
- (void)buttonSelected:(UIPushButton *)button;

#pragma mark Delegate
- (id)delegate;
- (void)setDelegate:(id)newDelegate;

@end